package com.gin.pixiv.response.ranking

import com.fasterxml.jackson.annotation.JsonAlias
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.gin.pixiv.deserializer.IllustSeriesDeserializer
import com.gin.pixiv.enums.IllustrationType
import java.time.ZonedDateTime

class IllustRankingContent {
    var attr: String? = null

    @set:JsonAlias("bookmark_illust_restrict")
    var bookmarkIllustRestrict: Int? = null
    var date: String? = null
    var height: Int? = null

    @set:JsonAlias("illust_book_style")
    var illustBookStyle: Int? = null

    @set:JsonAlias("illust_content_type")
    var illustContentType: IllustContentType? = null

    @set:JsonAlias("illust_id")
    var illustId: Int? = null

    @set:JsonAlias("illust_page_count")
    var illustPageCount: Int? = null

    @set:JsonAlias("illust_series")
    @set:JsonDeserialize(using = IllustSeriesDeserializer::class)
    var illustSeries: IllustSeries? = null

    @set:JsonAlias("illust_type")
    var illustType: IllustrationType? = null

    @set:JsonAlias("illust_upload_timestamp")
    var illustUploadTimestamp: ZonedDateTime? = null

    @set:JsonAlias("profile_img")
    var profileImg: String? = null
    var rank: Int? = null

    @set:JsonAlias("rating_count")
    var ratingCount: Int? = null
    var tags: List<String>? = null
    var title: String? = null
    var url: String? = null

    @set:JsonAlias("user_id")
    var userId: Long? = null

    @set:JsonAlias("user_name")
    var userName: String? = null

    @set:JsonAlias("view_count")
    var viewCount: Int? = null
    var width: Int? = null

    @set:JsonAlias("yes_rank")
    var yesRank: Int? = null

}